<?xml version="1.0" ?>
<xs:schema id="NewDataSet" targetNamespace="http://euss.evaluant.com/schemas/MappingOptionsSchema.xsd"
	xmlns:mstns="http://euss.evaluant.com/schemas/MappingOptionsSchema.xsd" xmlns="http://euss.evaluant.com/schemas/MappingOptionsSchema.xsd"
	xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
	attributeFormDefault="qualified" elementFormDefault="qualified">

  <xs:complexType name="MetaDataType">
    <xs:attribute name="Type" form="unqualified" >
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="model" />
          <xs:enumeration value="metamodel" />
          <xs:enumeration value="assembly" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:simpleType name="StrategyType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="TablePerHierarchy" />
      <xs:enumeration value="TablePerSubClass" />
      <xs:enumeration value="TablePerConcreteClass" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="PropertyType">
    <xs:attribute name="name" type="xs:string" form="unqualified" use="required" />
  </xs:complexType>

  <xs:complexType name="EntityType">
    <xs:sequence>
      <xs:element name="Id" minOccurs="0" maxOccurs="1">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Generator" type="xs:string" minOccurs="0" maxOccurs="1" />
            <xs:element name="Property" type="PropertyType" nillable="true" minOccurs="0" maxOccurs="unbounded" />
          </xs:sequence>
          <xs:attribute name="fieldname" form="unqualified" type="xs:string" />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="classname" form="unqualified" type="xs:string" />
    <xs:attribute name="tablename" form="unqualified" type="xs:string" />
    <xs:attribute name="discriminatorfield" form="unqualified" type="xs:string" />
    <xs:attribute name="discriminatorvalue" form="unqualified" type="xs:string" />
  </xs:complexType>

  <xs:element name="Option">

    <xs:complexType>
      <xs:sequence>


        <xs:element name="MappingFile" type="xs:string" minOccurs="0" maxOccurs="1" />
        <xs:element name="Metadata" type="MetaDataType" minOccurs="0" maxOccurs="1" />
        <xs:element name="Strategy" type="StrategyType" minOccurs="0" maxOccurs="1" />
        <xs:element name="Entity" type="EntityType" minOccurs="0" maxOccurs="unbounded" />

      </xs:sequence>

      <xs:attribute name="filename" form="unqualified" type="xs:string" />
    </xs:complexType>
  </xs:element>
</xs:schema>